/*
*   Fichier :		FPGA.cpp
*	Auteurs :		P12
*   Date :			2013-04-03
*   Version :		vSuivieProjet
*	Description :	Classe representant un FPGA
*/

#include "FPGA.h"
#include <iostream>

/*
 * Constructeur
*/
FPGA::FPGA() {
	valeurTEMPERATURE = 0x00;
	valeurLUMIERES = 0x00;
	valeurPHONEMES = 0x0;
	valeurAN0 = 0xc;
	valeurAN1 = 0xc;
	valeurAN2 = 0xc;
	valeurAN3 = 0xc;

	ecrireLUMIERES();
	ecrireAN0();
	ecrireAN1();
	ecrireAN2();
	ecrireAN3();
}

/*
 * Methode reset
*/
void FPGA::reset() {
	valeurTEMPERATURE = 0x00;
	valeurLUMIERES = 0x00;
	valeurPHONEMES = 0x0;
	valeurAN0 = 0xc;
	valeurAN1 = 0xc;
	valeurAN2 = 0xc;
	valeurAN3 = 0xc;

	ecrireLUMIERES();
	ecrireAN0();
	ecrireAN1();
	ecrireAN2();
	ecrireAN3();
}

// Getters
const int FPGA::getEtatTEMPERATURE() {
	return valeurTEMPERATURE;
}

const int FPGA::getEtatLUMIERES() {
	return valeurLUMIERES;
}

const int FPGA::getEtatPHONEMES() {
	return valeurPHONEMES;
}

const int FPGA::getEtatAN0() {
	return valeurAN0;
}

const int FPGA::getEtatAN1() {
	return valeurAN1;
}

const int FPGA::getEtatAN2() {
	return valeurAN2;
}

const int FPGA::getEtatAN3() {
	return valeurAN3;
}

// Setters
void FPGA::setEtatLUMIERES(int newEtat) {
	valeurLUMIERES = newEtat;
}

void FPGA::setEtatAN0(int newEtat) {
	valeurAN0 = newEtat;
}

void FPGA::setEtatAN1(int newEtat) {
	valeurAN1 = newEtat;
}

void FPGA::setEtatAN2(int newEtat) {
	valeurAN2 = newEtat;
}

void FPGA::setEtatAN3(int newEtat) {
	valeurAN3 = newEtat;
}

bool FPGA::lireTEMPERATURE() {
	return commFPGA.lireRegistre(TEMPERATURE, valeurTEMPERATURE);
}

bool FPGA::lirePHONEMES() {

	return commFPGA.lireRegistre(PHONEMES, valeurPHONEMES);
}

bool FPGA::lireLUMIERES() {
	return commFPGA.lireRegistre(LUMIERES, valeurLUMIERES);
}

bool FPGA::ecrireLUMIERES() {
	return commFPGA.ecrireRegistre(LUMIERES, valeurLUMIERES);
}

bool FPGA::ecrireAN0() {
	return commFPGA.ecrireRegistre(AN0, valeurAN0);
}

bool FPGA::ecrireAN1() {
	return commFPGA.ecrireRegistre(AN1, valeurAN1);
}

bool FPGA::ecrireAN2() {
	return commFPGA.ecrireRegistre(AN2, valeurAN2);
}

bool FPGA::ecrireAN3() {
	return commFPGA.ecrireRegistre(AN3, valeurAN3);
}

bool FPGA::estOk() {
	return commFPGA.estOk();
}

string FPGA::getMessageErreur() {
	return commFPGA.messageErreur();
}